1. Technical Field
The present invention relates to coprocessor-based heterogeneous clusters, and more particularly, to a scheduler and resource manager for coprocessor-based heterogeneous clusters.
2. Description of the Related Art
Coprocessor-based heterogeneous clusters are those whose nodes have one or more coprocessors as accelerators. Coprocessors may include, e.g., graphics processing units (GPUs). Such heterogeneous clusters are increasingly being deployed to accelerate non-graphical compute kernels, such as large scientific and compute-intensive jobs. At the same time, client-server applications are becoming more computationally intensive. In a client-server application, an important metric is response time, or the latency per request. Latency per request can be improved by using, e.g., GPUs.
For better utilization, multiple client-server applications should be able to concurrently run and share heterogeneous clusters (i.e., the cluster should support multi-tenancy). Further, the response times of the heterogeneous clusters for processing client requests should be largely immune to load variations and unpredictable load spikes. Thus, any practical heterogeneous cluster infrastructure should be able to handle multi-tenancy and varying load while delivering an acceptable response time for as many client requests as possible. For a heterogeneous cluster to handle client-server applications with load spikes, a scheduler that enables dynamic sharing of coprocessor-based heterogeneous resources is necessary.